﻿#pragma once

#include <QtWidgets/QDialog>
#include "ui_y2yUI.h"

//#include <QDebug>
//#include <QTimer>
#include <QFileDialog>
#include <QPalette>
#include <QColor>
#include <QMessageBox>


// 自写的加解密头文件
#include "Y2Y.h"


#ifndef y2yUI_H_
    #define y2yUI_H_

QT_BEGIN_NAMESPACE
namespace Ui { class y2yUIClass; };
QT_END_NAMESPACE

class y2yUI : public QDialog
{
    Q_OBJECT

public:
    explicit y2yUI(QWidget *parent = nullptr);
    ~y2yUI();


private slots:
    void inputFile_button_clicked();
    void outputPath_button_clicked();
    void pushButton_isFileKey_clicked();
    void toolButton_keyFile_clicked();
    void pushButton_add_clicked();
    void pushButton_cover_clicked();
    void pushButton_textToFile_clicked();
    void pushButton_show_clicked();
    void pushButton_showCodec_clicked();
    void pushButton_fileToFile_clicked();
    void pushButton_clear_clicked();

    void comboBox_key_currentIndexChanged();

    //void update_progress(int progress);



signals:
    //void openFileError();


protected:
    inline void set_y2yCtx_key();
    inline bool check_input_file();
    inline bool check_key();
    inline bool check_output_file(QString& check_outfile);


private:
    Ui::y2yUIClass *ui;

    // 加解密上下文
    y2yCtx ctx;

    // 按钮默认颜色
    QColor defaultPushbuttonColor;

    // bool var
    bool isFileKey;
    bool isAddFile; // 追加/覆盖输出文件

    // progress var
    //QTimer* progressTimer; // 用于定时更新进度的定时器
    //int currentProgress;    // 当前进度百分比
    //void startProgressDisplay();
    //void stopProgressDisplay();

};

#endif // y2yUI_H_